/**
 * RequetesClientTest.java    16/05/2012
 */

package l3.info.projetTests;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;

import l3.info.projetJava.client.RequetesClient;
import l3.info.projetJava.client.Utilisateur;
import l3.info.projetJava.serveur.ServeurRequetes;
import l3.info.projetJava.utilitaires.Chiffrement;

/**
 * Classe de test sur les méthodes de la classe RequetesClientTest
 * @author Loïc Martinez
 * @version 1.0
 */

public class RequetesClientTest {
    public static void main(String[] args) {

        // Création de l'utilisateur
        Utilisateur user = new Utilisateur(2, Chiffrement.toMD5("test"),
                null, null, null);

        try {
            // On créé le serveur
            new ServeurRequetes("serveur", 1099);

            System.out.println();
            
            // On créé le client qui va dialoguer avec le serveur
            RequetesClient rc = new RequetesClient();

            // On envoi l'utilisateur
            // Si celui est bon, il est rempli avec des informations
            // Son pseudo, les utilisateurs suivis etc
            user = rc.envoyerUtilisateur(user);

            // L'utilisateur existe dans notre base de données
            // Il doit être rempli d'informations
            System.out.println("Mon pseudo : " + user.getPseudo());

            // Utilisateurs suivis
            System.out.println("Utilisateur(s) suivi(s) :");

            for (String pseudoSuivi : user.getUtilisateurSuivi().values()) {
                System.out.println(pseudoSuivi);
            }
            
            System.out.println();

            // Crééons un utilisateur qui n'existe pas dans la base de données
            Utilisateur existePas = new Utilisateur(1, 
                    Chiffrement.toMD5("toto"), null, null, null);

            // On envoi l'utilisateur
            // Puisque celui-ci n'existe pas, son pseudo
            // devrait rester à null, ne as avoir d'utilisateurs suivis etc
            user = rc.envoyerUtilisateur(user);

            // Pseudo à null
            System.out.println("Pseudo de existePas : "
                    + existePas.getPseudo());
            
            // Il n'a donc pas d'utilisateurs suivis
            System.out.print("Nombre d'utilisateurs suivis : ");
            
            // Les utilisateurs suivis n'ont pas été initialisés
            if (existePas.getUtilisateurSuivi() == null) {
                System.out.println("0");
            } else { // On n'y rentrera pas
                System.out.println(existePas.getUtilisateurSuivi().size());
            }

        } catch (NotBoundException ex) {
            // TODO Auto-generated catch block
            ex.printStackTrace();
        } catch (RemoteException ex) {
            // TODO Auto-generated catch block
            ex.printStackTrace();
        }
    }
}

